// edenlite v0.1.0

var self=this;if(!self.buRRRn)
{self.buRRRn={};}
buRRRn.eden={};buRRRn.eden.version="0.1.0."+parseInt("$Rev: 55 $".split(" ")[1]);;buRRRn.eden.prettyIndent=0;buRRRn.eden.prettyPrinting=false;buRRRn.eden.indentor="    ";buRRRn.eden.newLine="\n";buRRRn.eden.serialize=function(value)
{if(value===undefined)
{return"undefined";}
if(value===null)
{return"null";}
var Serializer=buRRRn.eden.Serializer;if((value===self)||(value===_global))
{return Serializer.emitGlobal(value);}
if(value["toSource"]!=undefined)
{if(value.toSource.toString().indexOf("native code")==-1)
{return value.toSource(this.prettyIndent);}}
if((typeof value=="string")||(value instanceof String))
{return Serializer.emitString(value);}
if((typeof value=="boolean")||(value instanceof Boolean))
{return(value==true)?"true":"false";}
if((typeof value=="number")||(value instanceof Number))
{return value.toString();}
if(value instanceof Date)
{return Serializer.emitDate(value);}
if(value instanceof Array)
{return Serializer.emitArray(value);}
if(value instanceof Function)
{return"(function)";}
if(value instanceof Object)
{return Serializer.emitObject(value);}
return"<unknown>";}
buRRRn.eden.Serializer={};buRRRn.eden.Serializer.emitString=function(value)
{var quote,str,pos,ch,code;quote="\"";str="";pos=0;var _toUnicodeNotation=function(num)
{var hex=num.toString(16);while(hex.length<4)
{hex="0"+hex;}
return hex;}
while(pos<value.length)
{ch=value.charAt(pos);code=value.charCodeAt(pos);if(code>0xFF)
{str+="\\u"+_toUnicodeNotation(code);pos++;continue;}
switch(ch)
{case"\u0008":str+="\\b";break;case"\u0009":str+="\\t";break;case"\u000A":str+="\\n";break;case"\u000B":str+="\\v";break;case"\u000C":str+="\\f";break;case"\u000D":str+="\\r";break;case"\u0022":str+="\\\"";break;case"\u0027":str+="\\\'";break;case"\u005c":str+="\\\\";break;default:str+=ch;}
pos++;}
return quote+str+quote;}
buRRRn.eden.Serializer.emitObject=function(value)
{var eden=buRRRn.eden;var source=[];for(var member in value)
{if(value.hasOwnProperty(member))
{if(value[member]===undefined)
{source.push(member+":"+"undefined");continue;}
if(value[member]===null)
{source.push(member+":"+"null");continue;}
eden.prettyIndent++;source.push(member+":"+eden.serialize(value[member]));eden.prettyIndent--;}}
if(!eden.prettyPrinting)
{return("{"+source.join(",")+"}");}
var decal=eden.newLine+Array.initialize(eden.prettyIndent,eden.indentor).join("");return decal+"{"+decal+source.join(","+decal)+decal+"}";}
buRRRn.eden.Serializer.emitArray=function(value)
{var eden=buRRRn.eden;var source=[];for(var i=0;i<value.length;i++)
{if(value[i]===undefined)
{source.push("undefined");continue;}
if(value[i]===null)
{source.push("null");continue;}
eden.prettyIndent++;source.push(eden.serialize(value[i]));eden.prettyIndent--;}
if(!eden.prettyPrinting)
{return("["+source.join(",")+"]");}
var decal=eden.newLine+Array.initialize(eden.prettyIndent,eden.indentor).join("");return decal+"["+decal+source.join(","+decal)+decal+"]";}
buRRRn.eden.Serializer.emitDate=function(value)
{var y=value.getFullYear();var m=value.getMonth();var d=value.getDate();var h=value.getHours();var mn=value.getMinutes();var s=value.getSeconds();var ms=value.getMilliseconds();var data=[y,m,d,h,mn,s,ms];data.reverse();while(data[0]==0)
{data.splice(0,1);}
data.reverse();return"new Date("+data.join(",")+")";}
buRRRn.eden.Serializer.emitGlobal=function(value)
{var eden=buRRRn.eden;var source=[];var g="_global:";eden.prettyIndent++;for(var member in value)
{if(value[member]==value)
{continue;}
if(buRRRn.core2.isGlobalReserved(member))
{continue;}
if(value[member]===undefined)
{source.push(member+":"+"undefined");continue;}
if(value[member]===null)
{source.push(member+":"+"null");continue;}
eden.prettyIndent++;source.push(member+":"+eden.serialize(value[member]));eden.prettyIndent--;}
if(!eden.prettyPrinting)
{eden.prettyIndent--;return(g+"{"+source.join(",")+"}");}
var decal=eden.newLine+Array.initialize(eden.prettyIndent,eden.indentor).join("");eden.prettyIndent--;return g+decal+"{"+decal+source.join(","+decal)+decal+"}";}